Cover
THE MAGAZINE FOR VISUAL BASIC PROGRAMMERS!                  JUL./AUG.1993

ABOUT ELECTRIFIED VISUAL BASIC MAGAZINE

FROM THE PUBLISHERS DESK

CONTENTS


About EVB Magazine
ABOUT ELECTRIFIED VISUAL BASIC MAGAZINE

ELECTRIFIED VISUAL BASIC MAGAZINE is an "electronic" magazine.  It is a Shareware product.  It is not free.  If you enjoyed or found this issue of value, the Shareware price for this single issue is only $3.50.  Your support is necessary if you want us to continue to produce this magazine.

SHAREWARE PAYMENT FORM


EVBMAG Shareware Form
EVB MAGAZINE SHAREWARE PAYMENT FORM

NAME: _______________________________

COMPANY NAME: ____________________________________

ADDRESS: ____________________________________________

CITY: __________________________

STATE: _________________________

ZIP: ____________________________

COUNTRY: ______________________

PHONE: _________________________

Where did you get issue #3? ___________________________________________

What you liked about issue #3? ________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

What you did not like about issue #3? ____________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

Single issue Price is $3.50 per issue.

Arizona residents add 6.7 % sales tax.

Send check or money order drawn on a US Bank made payable to WELSH COMMUNICATIONS and send to the following address:

WELSH COMMUNICATIONS

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023


From the Publisher
FROM THE PUBLISHERS DESK

By Don Welsh

I would like to take this opportunity to welcome all of the new readers of ELECTRIFIED VISUAL BASIC MAGAZINE. It is a Bi-Monthly electronic magazine devoted to covering the exploding Visual Basic market. We have chosen to publish the magazine in Windows 3.1 Help format. Using this method we can provide a colorful magazine with hypertext, pop up graphics, searching and printing capabilities. The magazine features Reviews of commercial and shareware Visual Basic Add-ons, Visual Basic programming articles (with source code), Tips and Tricks, New Visual Basic Products, Contests and more.

Are you tired of searching through many different magazines hoping to find an article or review relating to Visual Basic? If you answered yes to this question then this magazine is for you!

We welcome your suggestions and comments on this magazine. We will be striving to improve the magazine with every issue. We can only accomplish that with your input.

Software Companies may send press releases and/or review copies of Visual Basic related programs to the below address:

WELSH COMMUNICATIONS

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023

Publisher

Don Welsh

Associate Editor

Pam Johns

Design

Bill Hamilton

Programming

John Tredwell

Authors

Bob Dombroski

Dave Johnston

Thomas Wagner

ELECTRIFIED VISUAL BASIC IS PUBLISHED SIX TIMES A YEAR AND IS COPYRIGHT (C) 1993 BY WELSH COMMUNICATIONS. ALL RIGHTS RESERVED. THIS ELECTRONIC MAGAZINE IS LICENSED "AS IS". WELSH COMMUNICATIONS MAKES NO WARRANTIES, EITHER EXPRESSED OR IMPLIED, WITH RESPECT TO THIS MAGAZINE, THE INFORMATION IT CONTAINS, ITS PERFORMANCE, QUALITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE VIEWS EXPRESSED BY THE AUTHORS MAY OR MAY NOT BE THE SAME AS THOSE OF THE PUBLISHER OR WELSH COMMUNICATIONS.


Author
Publisher

This column is written by Don Welsh. If you have any questions or ideas for this "electronic" magazine please contact me through ELECTRIFIED VISUAL BASIC MAGAZINE:

Don Welsh

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023


CONTENTS

AGILITY/VB REVIEW

CODE FRAGMENTS

COMPANY PROFILES

MINI-REVIEWS

PRODUCT SHOWCASE


Visual Data-Basics
AGILITY/VB REVIEW

By Thomas Wagner

AGILITY/VB

with Crystal Reports

- a combination that's very hard to beat -

Agility 	Crystal Reports

Apex Software	Crystal Services

4516 Henry Street	Suite 2200-1050 West Pender St.

Pittsburgh, PA 15213	Vancouver, BC, Canada

(412) 681-4343	(800) 877-2340 (US)

(800) 663-1244 (Canada)

Presently you may see advertisements for both Apex "Agility" and Crystal Software's "Crystal Reports" in a combined package at reduced prices. If you are planning to create database applications in Visual Basic, I highly recommend that you take a look at both programs.

Agility, a happy medium of power and programming ease:

As I previously mentioned, in the Visual Basic programming environment a developer oftentimes faces the dilemma of power vs. ease of use. Quite often the more powerful a .dll the less extraneous facades, such as programmers interfaces are included. For example look at the Paradox Engine vs. Q+E/VB. With "Agility", Apex Software has created a program that finds a happy medium between the two extremes.

There are two basic approaches to using Agility. One is to incorporate its 38 functions in your program to handle all aspects of database management. In addition you have access to error codes and error text as well. This type of hand coding is suitable to experienced programmers who require a maximum of control over the flow of information. The second approach allows a novice to create database applications without any coding at all. Some of these programs can become quite sophisticated, which is a compliment to the development engineers at Apex.

Because most of you are familiar with the first approach, after all that's what VB is all about, I want to spend a little time examining the second way Agility can be programmed. In essence creating database applications without hand coding. Agility accomplishes this goal through the use of command buttons that have  property settings corresponding to most database navigational requirements, such as "add", "delete", "previous", "next" etc. So creating a set of navigation commands means simply creating a set of command buttons and dialing in each buttons function through the property window.

Not to get too far off the subject, I still want to note that there is an intermediate step between the two approaches, which entails using VB and 3rd party controls (buttons etc.) and attaching code snippets to them. This can be considered a variation of the straight programmatic approach.

None of the controls will accomplish their task without having a database file to work off. This database file has to be created separately, and Apex provides two utility programs to make that process as uncomplicated as possible. Once the file has been created and a control array has been established on your form, all that's left is to draw some Agility text boxes that correspond to the fields of your database. Once these text boxes are hot linked, via their property settings, you have a functional windows database.

The most powerful control included with the program is a grid that can be used in a variety of tabular setups. In this manner you can, for example, create a list of all your friends using the grid control, and show more detailed information on the same form using Agility text controls. When you scroll through the grid, the details in the text controls change as well. This makes for an efficient way of displaying data.

I can see a tremendous need for the easy accessibility provided by this program among the various levels of power users in corporate America, which makes it attractive, especially when combined with a report generator such as Crystal Reports.

Views, File formats and Add-On's:

An interesting utility offered by Apex in conjunction with Agility is the View Editor. With it the developer can visually define relations between multiple database files, in homogenous or even mixed formats akin to the SET RELATION TO command used in Xbase. At present Agility supports dBIII / IV, delimited ASCII text files, and it's own file format.  For example, by using the view editor a programmer can take advantage of some of the strong features inherent to the .dbf and native Agility .agi file formats. While there are any number of factors governing the selection of a particular format, I want to point out that the native .agi format allows for variable length data storage without space penalty, unlimited field and record length, as well as the ability to add new fields to existing databases "on the fly". The native format also allows use of free form data, such as multimedia objects. Future releases are slated to  include the Paradox and Btrieve formats.

The next major upgrade, expected in the Summer of '93,  will offer support for Microsoft ODBC as well as other, as yet unspecified, access engines. In a related development the company is releasing a tool kit that allows for the creation of such access engines. Other tool kits promised include a Data Type Add On, which makes it possible to store additional data types Agility files, and a Custom Control Tool kit, which as the name implies allows for the creation of VB Custom Controls that interface directly with Agility.

Most important, while the present release is a single user version, Apex promised the next major upgrade to have multi-user capabilities. The company also states that developers with existing single user apps will be able to convert them to multi-user with that release.

Features galore:

Aside from the grid control, which sets the program apart from it's competition and is a very, very, very useful feature, Agility offers a number of additional "amenities". A developer can specify editing masks for input fields, thus being able to present the user with  pre-formated phone number or social security number fields. Taking one of the useful properties of SQL databases, Agility will not only let the programmer create very efficient, fully optimized, QBE models, it automatically puts the result of any query in a dataset which you can then manipulate further.

In addition, transaction processing is under development for the next major upgrade. Transaction processing, as you may know, allows for rollback and changes of transactions before they are committed to the database. This feature was first developed in mission critical on-line databases as a further measure of data integrity. It made so much sense that it quickly caught on in other industry areas.

The program's extendibility is born out in the example of two additional, albeit unconventional,  types of database engines that are being shipped with it. The first is called a Directory Database, and allows for access to the contents of a DOS directory. The second is a Memory Database, which as the name implies resides completely in memory for quick access. Of course unless the data is saved in a file it will be gone when you turn your machine off, or exit the program.

During my research I ran into one developer who wants to make ingenious use of this facility. Alan Buck, programmer with Prometheus Systems in Westboro Massachusetts is currently involved in transporting a medical claims application originally created on the Macintosh to the PC (Windows). Alan states:" ......The application is a claims administration system designed to track and handle all types of liability exposure, the most common one being workman's compensation.  It is targeted for the risk management departments of any self-insured company or government agency.  It compiles to around 4 megs and has ~100 forms.  It has word processing and spreadsheet capabilities and is a pretty complete package.  I'm now working on the conversion over to Windows using VB-ODBC-MS SQL Server as the environment.

Unfortunately, right now we're not using the memory resident files because that is an area which has a serious bug, ie one I can't figure a work-around for. But once it is fixed then I'll use exclusively memory resident files.

(Authors Note: Apex expects to release a technical upgrade that kills this bug approximately toward the middle of May '93. By the time you read this, it will be available. In addition, certain dll's and fixes will be posted on Compuserve.)

For now I create files and place them on the hard-drive and erase them when I'm done using them.  However, once fixed, I will read the SQL data via a wrapper routine I wrote into Agility memory database files. From there it's a piece of cake to give all the VB forms access to that data ......"

More Features...

Another noteworthy item is the idea that once an application using Agility has been written - and as VB programmer we spend a considerable amount of time on interface design - it can be re-used with several different database formats, simply by dialing in the required format on the controls or setting them  programatically. With more formats on the way this feature becomes more appealing.

With that in mind, it becomes obvious that Agility, once in "full bloom" will make a very capable client / server development tool. There is still a question of SQL implementation, however, this may be solved in future releases as well. The company is certainly well aware of the need for it. In the meantime, work-around solutions such as the one employed by Alan Buck allow for the use of the product with SQL right now.

If there is one item that I feel less than enthusiastic about when looking at "Agility", it's the programs documentation. My feeling is that the manual could stand some more attention (I can hear you thinking "No wonder - you are a writer, of course you would feel that way") But seriously, for a program as accomplished as "Agility" I would love to see more examples and better explanations. The manual itself can be hard to read at times.

Agility + Crystal Reports = $$$

The $ does not mean that the two programs cost a lot. Actually, with the product bundle that Apex is offering you can get both programs for a reasonable price. The $ sign does represent increased productivity, and hopefully as a result increased profits for the developers using both programs in tandem.

Considering the technical accomplishment represented by Visual Basic, it is a crying shame that we are still relegated to the terms of  "Printer"  and "PrintForm" to handle printed output. When attempting to format output - even simple pages - in that manner, it takes weeks to get the job done.

Luckily for us, there are a number of utilities beginning to fill this gap. Among them, Crystal Reports is being noticed for its outstanding features. A dual function program, Crystal Reports distinguishes itself by being able to work with a number of development platforms aside from VB. Generally speaking you can include the report engine with any program that is able to utilize .dll's. That includes C, Turbo Pascal, ObjectVision etc. As a matter of fact, the dll is utilized in Hewlett Packard's Information Access, and Microsoft Profit applications. Do you need a better pedigree than that?

Crystal Report uses a two-part approach. As a developer, you first design the report layout using the Report Designer, and later pass it to the Report Engine. The dll itself occupies 800 KB of disk space, which makes a "bare bones" application created in Agility, with reporting capabilities, approximately 1.7 - 2.3 MB large - not counting any additional VBX's you may use, such as the popular 3-D Widgets for example. For the purpose of this calculation the actual VB .exe is sized arbitrarily at about  300-500 KB.

What do you get for the 800 KB of space Crystal Report's .dll takes up? Quite a lot actually. You get access to dBase, Clipper, FoxPro 2.0 & 2.5 (IDX/CDX), Agility (when purchased with Agility), Btieve 5.0 & 6.0 and Paradox 3.5 & 4 files. (The Pro version of CR also allows for access of SQL Server, Sybase and Oracle.) This feature in and of itself distinguishes the program greatly from others. Where R&R Reportwriter (a close second choice) allows access to all sorts of Xbase flavors (dBase etc.) Crystal Reports is further developed when it comes to connecting with SQL servers and lesser known formats, such as Agility. And so far Crystal Reports certainly offers a richer environment than The Report Generator by MicroHelp.

It allows for a level of customization that is very refreshing to see in this kind of utility. Including bitmapped graphics, dropped shadows, colored fields and borders, items that are usually found in high end database software such as FoxPro for Windows or MS Access. All of that without the necessary overhead of a program like Access, which has a recommended minimum configuration of 386 Mhz with 8MB of RAM.

( I know, I've read the Microsoft literature that states 4MB of RAM is the recommended amount. My machine has 4MB, and I want to take a nap while waiting for the program to execute. So believe me, 8 MB is the minimum. Imagine what happens to those poor people who actually follow the MS guidelines and try to run Access with 2MB (listed as minimum requirement on the packaging). Microsoft would have excluded a good number of the initial 850,000 people who bought the program if the company had listed the minimum as 8 MB. Face it folks, Bill Gates knows how to make a buck. Gotta admire the guy's style sometimes.)

Back to the list of features. Version 2.0 of Crystal Reports, while still very anemic in the VB documentation department, has a custom control that can be added to the toolbox via the usual method and makes life quite a bit easier. The manual itself is not anemic by any means, its probably about 2.5 inches thick. However, there is precious little in it dealing with VB. When asked, the company refers its customers to a VB sample application shipping with the program. In addition, there is some information available from Crystal Software's tech-support via fax and BBS.

Using the program for the first time I would recommend that you include the VB sample application, CRVBSMPL.MAK, shipping  with CR in your program to provide you with a starting point. In order to declare all the functions of the .dll library import the CR file called GLOBAL.TXT, merging it into your projects Global.bas file. It's as simple as that.

Interestingly enough, while acknowledging the lack of VB documentation, CR tech-support as well as other personnel stated that 9 out of 10 callers after seeing the example application don't have any more questions. My question then is who would want to be that one inept dummy who calls back and doesn't understand the samples? Which is my way of saying that nothing beats proper documentation. Nevertheless, the fact is that the program is very powerful and after you are familiar with its procedures it is easy to use. Finally, when compared to the way printed output used to be generated in VB, it feels absolutely and positively luxurious.

Version 2 of the program includes a modified user interface, with status bar, multi-object selection and the convenience of formatting via the right mouse button.

As I've mentioned earlier the program utilizes a two-step approach. Step one is the creation and step two the distribution of reports (royalty free). That means the program, while installed at a particular site, can function as a straight reporting tool for users, as well as a development tool for programmers.

Corporate power users may find another feature effective - the Report Compiler. Once a report has been designed, the compiler allows for the creation of a Windows .EXE file to which you can attach an icon. Then whenever the report is needed, just click on the icon and.. ..voila it is being run automatically.

The entire program, including sample files takes up 6 MB of disk space. It requires at least 4MB of RAM and Windows 3.0 or better. Crystal Services also offers a LANPAK which allows simultaneous access of five users. The list price for a single user version is $195.00, with the PRO release costing $395 . The LANPAK costs 395, while the PRO release for LAN is priced at $595.

Again, among it's competitors at the time of this writing Crystal Reports stands head and shoulders above the rest for its functionality, power and flexibility. Certainly when combined with Agility it provides a programming solution that can handle a great variety of problems. My personal feelings are that Apex and Crystal Services have definitely created a winning combination. By the time you read this, I expect the next release of VB to hit the market. This new release (VB3.0) will have extended database capabilities through the use of the Access 1.1 engine. This of course will make for some heated competition, and should promise an interesting review.

The Agility View Editor, a utility that allows you to set relationships between databases visually. You can relate any of the Agility supported formats, thus you can relate a native format to a text (ASCII) database, which is in turn related to a dbf formatted one. In addition, the relationships can be defined as ont to one or one to many.

AgiTate - the dBase File Maintenance Utility. This program allows to create dbf files, including indexes and field definitions (i.e. numerical, character etc.)

The Browser. This utility is a good example of the cappabilities that are available within Agility. It allows you to browse sort and query any of your databases. You can add and delete data as well as create saved queries.  Importantly, it comes with all the source code, so you can dissect the structure of the program and learn the best use of Agility's functions. An impressive implementation of the program.

A screenshot of Crystal Reports 2.0, with a newly created report. Please note all of the usual Windows amenities of the program, such as a toolbar with the most commonly used functions and multiple windows within the work area.


Author

Thomas Wagner

1201 South Ogden Drive

Los Angeles, CA 90019

(Mr. Wagner is an independent database programmer. He has been involved with the creation of  applications on a number of platforms and is a member of several software quality assurance programs.  Most recently he has been working on database solutions utilizing Microsoft Access. )


CODE FRAGMENTS

By Bob Dombroski

Welcome to "Code Fragments". This feature is dedicated to the Visual Basic developer who wants to get a little more out of his code...or into it. The articles will vary in depth from basic, to intermediate and advanced programming topics. The goal will be to provide practical examples and techniques described in plain and simple language accompanied by useful Code Fragments.

Code Fragments  ( Installment 1.2 )

This article will be the first of two devoted to exploring the MSMAPI.VBX control. First let me explain I'm not expert in this area but I have a high degree of interest as well as a couple of ideas to explore. I'll share what I learn. I will welcome comments and improvements on my code that we can add to this discussion.

In this first article we'll put together a simple little applet that will send email messages with attached documents to MSMAIL users. The second article will attempt to evolve the applet into a very modest groupware application. Groupware is a new, but already over used term, for application that supports cooperative data processing among users or groups of users. I think many people in the industry have taken liberties with the meaning of groupware. Some vendors will tell you that either E-mail or a time scheduler or even a PIM is groupware. But to me groupware products have three main ingredients;  they are e-mail enabled, they share data in a database and they include routing. Even the highly touted Lotus Notes just included the routing capability in it's current release. Groupware in my definition is usually not an application that is a solution in itself but one that is easily used to build solutions.

Anyway, you see where I'm going. I'm intrigued by groupware and I'd like to see what we can do on our own to satisfy my definition. To continue on the task at hand, let me tell you that there are to approaches we can take to create a solution. One, the .VBX control method that I'll using in this example and  two, the Messaging Application Program Interface for Visual Basic that comes with the MS MAIL Messaging Applications Development Tools disk. This method uses a DLL instead of the VBX file. I'll ignore this method except to tell you that I was unable to get my sample program to work until I read the MS MAIL Technical Reference manual. This document was able to plug a couple of hole for mean since I was unable to glean all I needed from the VB manuals. Getting your hands on this manual me be the best single piece of advice I can give you.

This months column includes all the code for the project I'm describing. Here is the project file. You'll notice I've included the entire  constant.bas file. That's reeally overkill but I'm trying to keep my things simple and easy as I've got too many projects in life going on right now.

custmapi.mak

CUSTMAPI.FRM

C:\WINDOWS\SYSTEM\MSMAPI.VBX

C:\WINDOWS\SYSTEM\CMDIALOG.VBX

C:\WINDOWS\SYSTEM\THREED.VBX

CONSTANT.BAS

C:\WINDOWS\SYSTEM\MSMASKED.VBX

ProjWinSize=85,579,191,215

ProjWinShow=2

Title="CustMapi"

ExeName="CUSTMAPI.EXE"

custmapi.frm

Sub Form_Load ()

' --------------------------------------------------------

'

First lets look at what the MSMAPI.VBX control gives us. It is really two controls, the MAPI Session control and the MAPI Message control.

The use the Session control is akin to the file I/O functions Open and Close. You open a file to obtain a file handle and the perform the I/O functions using that handle until you close the file, releasing the handle. Maybe a closer analogy is logging on to a mainframe to create a terminal session. The code required to set it up is minimal. Just three step and we obtain our message handle.

 MapiSession1.NewSession = True	       ' 1. Establish a new session

 MapiSession1.LogonUI = True	' 2. Flag that indicates a logon dialog

'    box will be displayed

 Mapiession1.Action = SESSION_SIGNON     ' 3. Perform the logon & obtain a

'    session handle

Except for terminating the session, that's it. (see the cmdExit_Click( ) code for that). To initialize the Messages control copy the handle we just got to the SessionID property of the control. Secondly, set the MsgIndex to -1. Initializing MsgIndex allows the messages of this type (I explain type in a minute) to be enumerated for subsequent function calls to retrieve or delete messages.

 MapiMessages1.SessionID = MapiSession1.SessionID ' 4. Use the handle in the

 	          '    messsages control

 MapiMessages1.MsgIndex = -1

  	Be default the message type is "IPM" for Interpersonal Message. Our application is using the default type. Since the MS Mail application sends and receives only messages of this type, it means any message we send will arrive in an network users  MS Mail Inbox. Other message types can be defined using "IPC" (Interprocess Communication Message) as the first three characters of the type.  Therefore user defined applications can send mail between themselves, essentially creating a private mail system.

 'MapiMessages1.MsgType = "IPM"	' Set the message Type to the default

End Sub

To complete our use of the Session Control we will terminate or signoff the session we eatablished in the Form Load code. Doing so requires assigning the Action property the signoff value which will terminate the session.

Sub cmdExit_Click ()

' --------------------------------------------------------

'

   MapiSession1.Action = SESSION_SIGNOFF

   Unload Me

End Sub

Minimually, to send a message we must have a recipient, a subject and a message. Here's is how that is done.

Sub cmdSendMsg_Click ()

' --------------------------------------------------------

'

In order to add a recipient the VB manual states, "...set the RecipIndex to a value greater than or equal to the current recipient count...", OK, I'll do that. We could  have obtained access to the user list to get our user name and we should have validated the user. I'll let you fill that in.

   MapiMessages1.RecipIndex = MapiMessages1.RecipCount  ' 1. Set the Index

   MapiMessages1.RecipDisplayName = "Dombroski, Bob"    ' 2. Set the Recipient

I assign the form caption as the subject...

   MapiMessages1.MsgSubject = frmMotorPool.Caption	 ' 3. Set the subject

 ... and the contents of the reason textbox as the message....

  If txtReason.Text <> "" Then

      MapiMessages1.MsgNoteText = txtReason.Text	 ' 4. Set the message text

   Else

      MapiMessages1.MsgNoteText = lblDocumentAttached.Caption

   End If

.... and now I send it. And note, with complete disregard to checking for error messages.

   MapiMessages1.Action = MESSAGE_SEND	 ' 5. SEND IT!

   pnlStatus.ForeColor = GREEN	 ' 6. FLUFF!

   pnlStatus.Caption = "Message Sent"

   Beep

   Beep

End Sub

I've also added a function to attach a file to our message. It uses the common dialog box control to select a file.

Sub cmdAttachFile_Click ()

' --------------------------------------------------------

'

   On Error Resume Next

   CMDialog1.Filter = "All Files (*.*)|*.*|TextFiles(*.txt)|*.txt"

   CMDialog1.FilterIndex = 2

   CMDialog1.Action = 1

   If Err = 0 Then

      On Error GoTo 0

      lblDocumentAttached.Caption = CMDialog1.Filename

      MapiMessages1.AttachmentIndex = MapiMessages1.AttachmentCount

      MapiMessages1.AttachmentName = CMDialog1.Filetitle

      MapiMessages1.AttachmentPathName = CMDialog1.Filename

      MapiMessages1.AttachmentPosition = MapiMessages1.AttachmentIndex

      MapiMessages1.AttachmentType = MAPI_ATT_File

   End If

End Sub

If you have access to MS Mail from your PC, please cut and paste the code and try this program for yourself. Then, flesh it out or turn it into your own "While You Were Out" program. Maybe not! That's to predictible. I you have any interest in groupware you could work on moving this app. to the next level. I will be interesting to see what can be done.

VERSION 2.00

Begin Form frmMotorPool

   BackColor       =   &H00C0C0C0&

   Caption         =   "Motor Pool Vehicle Request"

   Height          =   5250

   Left            =   1080

   LinkTopic       =   "Form1"

   ScaleHeight     =   4875

   ScaleWidth      =   5295

   Top             =   1140

   Width           =   5385

   Begin Frame fraDates

      BackColor       =   &H00C0C0C0&

      Height          =   1275

      Left            =   3240

      TabIndex        =   12

      Top             =   1080

      Width           =   1875

      Begin MaskEdBox mskDateFrom

         Height          =   315

         Index           =   0

         Left            =   720

         Mask            =   "##-##-##"

         MaxLength       =   8

         TabIndex        =   14

         Top             =   480

         Width           =   975

      End

      Begin MaskEdBox mskDateFrom

         Height          =   315

         Index           =   1

         Left            =   720

         Mask            =   "##-##-##"

         MaxLength       =   8

         TabIndex        =   13

         Top             =   840

         Width           =   975

      End

      Begin Label Label1

         BackColor       =   &H00C0C0C0&

         Caption         =   "Dates of Use"

         ForeColor       =   &H00000000&

         Height          =   210

         Index           =   3

         Left            =   360

         TabIndex        =   17

         Top             =   180

         Width           =   1155

      End

      Begin Label Label1

         BackColor       =   &H00C0C0C0&

         Caption         =   "To"

         ForeColor       =   &H00000000&

         Height          =   210

         Index           =   5

         Left            =   180

         TabIndex        =   16

         Top             =   900

         Width           =   375

      End

      Begin Label Label1

         BackColor       =   &H00C0C0C0&

         Caption         =   "From"

         ForeColor       =   &H00000000&

         Height          =   210

         Index           =   6

         Left            =   180

         TabIndex        =   15

         Top             =   540

         Width           =   495

      End

   End

   Begin TextBox txtRequestor

      Height          =   285

      Left            =   1440

      TabIndex        =   11

      Top             =   780

      Width           =   3675

   End

   Begin ComboBox cboVehicleType

      BackColor       =   &H00FFFFFF&

      Height          =   300

      Left            =   1440

      Style           =   2  'Dropdown List

      TabIndex        =   9

      Top             =   1440

      Width           =   1695

   End

   Begin SSPanel pnlStatusBar

      Align           =   2  'Align Bottom

      Alignment       =   1  'Left Justify - MIDDLE

      BackColor       =   &H00C0C0C0&

      BorderWidth     =   2

      Font3D          =   2  'Raised w/heavy shading

      ForeColor       =   &H00FF0000&

      Height          =   555

      Left            =   0

      Outline         =   -1  'True

      RoundedCorners  =   0   'False

      ShadowColor     =   1  'Black

      TabIndex        =   2

      Top             =   4320

      Width           =   5295

      Begin CommandButton cmdExit

         Caption         =   "Exit"

         Height          =   375

         Left            =   4305

         TabIndex        =   4

         Top             =   105

         Width           =   855

      End

      Begin SSPanel pnlStatus

         Alignment       =   1  'Left Justify - MIDDLE

         BackColor       =   &H00C0C0C0&

         BevelInner      =   1  'Inset

         BevelOuter      =   0  'None

         BorderWidth     =   0

         Font3D          =   2  'Raised w/heavy shading

         ForeColor       =   &H00FF0000&

         Height          =   330

         Left            =   120

         RoundedCorners  =   0   'False

         ShadowColor     =   1  'Black

         TabIndex        =   3

         Top             =   120

         Width           =   4095

      End

   End

   Begin TextBox txtReason

      Height          =   1155

      Left            =   180

      TabIndex        =   0

      Top             =   2460

      Width           =   4935

   End

   Begin SSPanel pnlButtonBar

      Align           =   1  'Align Top

      Alignment       =   1  'Left Justify - MIDDLE

      BackColor       =   &H00C0C0C0&

      BorderWidth     =   0

      Font3D          =   2  'Raised w/heavy shading

      ForeColor       =   &H00FF0000&

      Height          =   495

      Left            =   0

      RoundedCorners  =   0   'False

      ShadowColor     =   1  'Black

      TabIndex        =   5

      Top             =   0

      Width           =   5295

      Begin CommonDialog CMDialog1

         DialogTitle     =   "Select File to Attach"

         Left            =   3780

         Top             =   0

      End

      Begin MapiMessages MapiMessages1

         AddressCaption  =   ""

         AddressEditFieldCount=   0

         AddressLabel    =   ""

         AddressModifiable=   0   'False

         AddressResolveUI=   0   'False

         FetchMsgType    =   ""

         FetchSorted     =   0   'False

         FetchUnreadOnly =   0   'False

         Left            =   3300

         Top             =   60

      End

      Begin MapiSession MapiSession1

         Action          =   0  'Nothing

         DownloadMail    =   -1  'True

         Left            =   2820

         LogonUI         =   -1  'True

         NewSession      =   0   'False

         Password        =   ""

         Top             =   60

         UserName        =   ""

      End

      Begin CommandButton cmdSendMsg

         Caption         =   "Send Message"

         FontBold        =   0   'False

         FontItalic      =   0   'False

         FontName        =   "MS Sans Serif"

         FontSize        =   8.25

         FontStrikethru  =   0   'False

         FontUnderline   =   0   'False

         Height          =   375

         Left            =   1440

         TabIndex        =   19

         Top             =   60

         Width           =   1275

      End

      Begin CommandButton cmdAttachFile

         Caption         =   "Attach File"

         FontBold        =   0   'False

         FontItalic      =   0   'False

         FontName        =   "MS Sans Serif"

         FontSize        =   8.25

         FontStrikethru  =   0   'False

         FontUnderline   =   0   'False

         Height          =   375

         Left            =   120

         TabIndex        =   18

         Top             =   60

         Width           =   1275

      End

   End

   Begin Label Label1

      BackColor       =   &H00C0C0C0&

      Caption         =   "Requestor"

      ForeColor       =   &H00000000&

      Height          =   210

      Index           =   4

      Left            =   240

      TabIndex        =   10

      Top             =   840

      Width           =   975

   End

   Begin Label Label1

      BackColor       =   &H00C0C0C0&

      Caption         =   "Vehicle Type"

      ForeColor       =   &H00000000&

      Height          =   210

      Index           =   2

      Left            =   240

      TabIndex        =   8

      Top             =   1500

      Width           =   1155

   End

   Begin Label Label1

      BackColor       =   &H00C0C0C0&

      Caption         =   "Reason for request"

      ForeColor       =   &H00000000&

      Height          =   270

      Index           =   1

      Left            =   240

      TabIndex        =   7

      Top             =   2160

      Width           =   2535

   End

   Begin Label Label1

      BackColor       =   &H00C0C0C0&

      Caption         =   "Pertinent document attached"

      ForeColor       =   &H00000000&

      Height          =   270

      Index           =   0

      Left            =   240

      TabIndex        =   6

      Top             =   3660

      Width           =   2535

   End

   Begin Label lblDocumentAttached

      BackColor       =   &H00C0C0C0&

      BorderStyle     =   1  'Fixed Single

      Height          =   255

      Left            =   150

      TabIndex        =   1

      Top             =   3960

      Width           =   4965

   End

End

custmapi.frm in edit mode

 custmapi.frm at run time


Author

This column was written by BOB DOMBROSKI. If you have any questions or ideas for topics for this column please contact me through ELECTRIFIED VISUAL BASIC MAGAZINE:

BOB DOMBROSKI

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023


Visual Guide
COMPANY PROFILES

COMPANY PROFILES will tell you a little about companies that support VISUAL BASIC. Please keep in mind that these are written by the companies themselves.

Desaware : Company Profile

Desaware was founded on April 1st 1991 during the beta program for Visual Basic 1.0 with the intent of providing development tools and add-on products for this phenomenal new language. During its first year, Desaware launched two products, The Custom Control Factory and CCF-Cursors.  The Custom Control Factory met great success as a tool to build user interface components and a subset of the product was licensed to Microsoft for inclusion in the Visual Basic professional tool kit as the animated button control.  CCF-Cursors proved to be the easiest way to implement custom mouse pointers and to detect mouse events in Visual Basic.

In 1992 it became apparent that there was an great lack of information and tools for advanced Visual Basic programmers. Most third party vendors were focusing on providing general purpose libraries and pre-packaged custom control solutions, or on specialized tools for database access or image processing. Desaware made the strategic decision to focus on high end development tools for Visual Basic programmers.  This continued the focus set by the first two products, which were much more like tools than pre-packaged solutions.

Two approaches were pursued simultaneously to accomplish this goal; one relating to information, the other to tools. First, Daniel Appleman, Desaware's founder wrote "PC Magazine's Visual Basic Programmer's Guide to the Windows API" which was published by Ziff-Davis Press. This book provides extensive information on using the 700+ Windows API functions and dozens of windows messages that are compatible with Visual Basic.  Second, Desaware shipped SpyWorks-VB, and advanced enhancement and tools package for VB.  Between these two products, it is possible for a VB programmer to accomplish virtually anything in Visual Basic that they can accomplish using C or C++.

This development philosophy is being continued as Desaware enters its third year.  SpyWorks-VB version 2.0 is under development to extend the capabilities of Visual Basic even farther.  A new application notes series called "SpyNotes" is under development for later this year. Desaware will continue to explore opportunities for high end tools for Visual Basic in all of its future incarnations.

NOTE: EVB MAGAZINE WILL BE REVIEWING ALL OF DESAWARE'S PRODUCTS IN THE NEXT ISSUE.


Ventana Press
DESAWARE

5  TOWN & COUNTRY VILLAGE  #790

SAN JOSE, CA  95128

(408) 377-4770


MINI-REVIEWS

Mini-Reviews are small  reviews of shareware and public domain utilities, source code, reference files etc. These are great in the fact that they are good learning tools and you can stop re-inventing the wheel. They are usually smaller and do not warrant a full review in another section of this magazine.

TOOL20.ZIP

Bytes:   38067

Freeware: ToolButton 2.0

Use the ToolButton custom controls to put standard toolbar buttons in your Visual Basic application and provide "point and click" style context-sensitive help.

Features include: 9 standard command buttons; 6 different button states generated from a single supplied bitmap for custom buttons; MouseDown event for help messages; complete online help reference.

BUTNUP.ZIP

Bytes:   26689

Here's 100 buttons for ToolButton 2.0

Included are ten button arrays compatible with versions 1 and 2 of Brett Foster's

ToolButton VBX, listed as TOOL20.ZIP.  They are all in color, and have been tested for alignment. A BMP "workspace" is also included for modifying the buttons, or creating new ones.

VISHLP.ZIP

Bytes:   127585

Visual Help Version 1.0

Visual Help is an authoring tool for Microsoft Windows Help Files. Use DRAG and DROP to create professional quality help files fast. With support for bitmap and sound files, you can develop complete multimedia documents.  View your help file in an outline. Test your help file in a runtime environment that emulates WINHELP before compiling. Also assign WinHelp Macros to labels and images. Includes Image designer for creating bitmap buttons and  fonts. Requires VBRUN200.DLL

VBKNOW.ZIP

Bytes:   189259

Visual Basic Online Knowledge Base

This is a Windows help system that contains over 200 articles that relate to Visual Basic for Windows.  These articles were developed by Microsoft's Basic Language Product Support personnel. They are in direct response to questions asked by users and programmers of Visual Basic.

These files are available in the Shareware libraries in the PRODUCT SHOWCASE section of this magazine.

-OR-

Members of the BBS can obtain the above files from the ELECTRIFIED NETWORK.


Electrified Visual Basic BBS
THE ELECTRIFIED NETWORK

This is an on-line resource for Visual Basic programmers. It is running high speed BOCA 14.4 V32bis modems. There are 9 CD ROMs on-line with over 230 different file areas. It is a fully graphical, mouse driven BBS. Use your mouse to click on icons for all BBS operations. It has many Visual Basic file sections for VB source code, Shareware and Freeware utilities / custom controls etc. There are also many general Windows file sections on-line. These include Windows games, utilities, icons, fonts, graphics, WinWord files, Word Perfect files, programming etc. There are also message sections dedicated to Visual Basic programming. It also has sections for Electrified Visual Basic Staff and Freelance writers.

CALL (602) 942-9405 with your modem today!


PRODUCT SHOWCASE

VISUAL BASIC SHAREWARE LIBRARY

VISUAL BASIC SHAREWARE LIBRARY 2

VISUAL BASIC SHAREWARE LIBRARY 3

ICON LIBRARY

VBMAN

ELECTRIFIED NETWORK


VB Shareware Library
VISUAL BASIC SHAREWARE LIBRARY

This library contains Visual Basic Shareware, Freeware and Public Domain files. All of these files are specially picked with the Visual Basic programmer in mind. You get plenty of Custom Controls, DLL's, On-line Help files, Source Code and more. This library contains no filler (some VB file libraries come with regular Shareware programs that are of no real use by VB programmers or come with no availability of Source Code - NOT THIS LIBRARY!) NOTE: SHAREWARE PROGRAMS MAY REQUIRE SEPARATE PAYMENT MADE DIRECTLY TO THE AUTHOR FOR CONTINUED USE.

VB COMMUNICATION FILES

COMMDEMO.ZIP - A limited but functional comm program. Partial Source Incld.

VBCOMM.ZIP - A communications control. Includes sample App.

VBTERM2.ZIP - A basic communications program. Source Code included.

MHCOMM.ZIP - Term program by MicroHelp. Shows what can be done with their VB Addon.

INSTAL.ZIP - Allows easy setup of shared Apps on a Network. Source Available.

VB CUSTOM CONTROLS

CCFACT.ZIP - A Demo of Custom Control Factory. Animated pushbuttons, 3-D effects etc.

CLPSIB.ZIP - Allows overlapping controls. Source code for a demo is included.

DROPDOWN.ZIP - Shows how to simulate a Combo Box with a Text Box & a List Box.

ETDEMO.ZIP - Source Code as a demo of EditTool which creates custom controls.

INPUT.ZIP - A TextBox control that adds 3-d,formatted input, justification.

MLISTBOX.ZIP - A control for extended and multi selection list boxes.

MOVTXT.ZIP - Shows use of a Picture control to simulate dragging text controls.

MSGBOX.ZIP - Easy way to set up MSGBoxes. This utility generates the source.

MULTSEL2.ZIP - A multiple selection list box control.

STSBAR.ZIP - C. Control to place a status bar "glued" to the bottom of a form.

VB4CTRLS.ZIP - Four controls to add 3-d effects, gauges etc.

VBLISTBX.ZIP - Control for multiple selection and multiple column list boxes.

VBMBTTN2.ZIP - A multi-button control that divides itself into sub-buttons.

VBPIC3D.ZIP - Control to provide buttons with pictures and 3-D shading.

FMDROP.ZIP - Control that allows VB to react to files dropped onto VB forms.

VB DATABASE FILES

PDOXDE.ZIP - A demo of using the Paradox engine. Paradox DLL req.

PXCREATE.ZIP - Routine allowing the creation of Paradox tables. Source Incld.

VBDB.ZIP - A database engine that supports dBase format & DDE.

KWI.ZIP - A small Address book with Visual Basic Source Code.

VB DLL'S

ENUMFONT.ZIP - A DLL to call Windows API function ENUMFONT. Source Incld.

HOTKEY.ZIP - A DLL to provide Hotkey support for VB Apps.

HUGEARY.ZIP - DLL to create, maintain & delete arrays greater than 64k.

HUGEGRID.ZIP - Example source to use HUGEARY with the grid control.

MHELP.ZIP - Free DLL from MicroHelp INC. Has VB versions of PEEK, POKE, INP, OUT.

SNDEX.ZIP - A Soundex DLL for Visual Basic.

VBPTR.ZIP - A dll to provide pointer support. Allows Bload/Bsave, MK$, CV?.

VBSW11.ZIP - A DLL to return window handles to active apps. Sample Source Incld.

VBUBBLE.ZIP - A DLL to provide bubble type help windows.

PSETUPCK.ZIP - DLL to access the standard printer setup dialog box. Sample source included.

PRSET.ZIP - A DLL for controlling & configuring printers. Source Included.

WFIND.ZIP - A DLL to supplement the AppActivate command.  Source Incld.

VBBTRV.ZIP - Example code for using Btrieve in VB Applications.

VB DISK ACCESS & FUNCTIONS

DSCAN.ZIP - A .BAS file to scan drives for a certain file.

FBR12C.ZIP - File Manager to Load/Run Apps. Source Included.

FILBX2.ZIP - A Windows type file open dialog box with source code.

FILER1.ZIP - File Finder to view, delete files & print DIR's. Source incld.

FILBX2.ZIP - Windows style file open dialog box. Source included.

VB FONT

FNTCNT.ZIP - Displays and prints fonts. Source code is Available.

FNTVIEW.ZIP - Source Code for an App to find, display & print Windows fonts.

FONTRO.ZIP - Shows how to print text at any angle in V.B. Applications.

VBFON2.ZIP - A simple font viewer. Visual Basic Source Code included.

VB GAMES

ACCRD1.ZIP - Solitaire game done with VB. Source Code Included!

CARD10.ZIP - A card deck DLL for writers of VB card games. Inclds 52 cards, Joker, 7 card backs.

G4K110.ZIP - Four games in one for kids. Source Code is available.

MYMEM1.ZIP - A memory matching game. Source Code is included.

ROLLEM.ZIP - The dice game Craps. Includes Source Code.

RUTHIE.ZIP - A game for young children. Source code Included.

SIMON.ZIP - The challenging memory/color/sound game. VB Source Code incld.

NUMGAME.ZIP - Childrens game for +, -, x, and division. Source Included.

TAB100.ZIP - Card game for two players. Visual Basic Source Code Included.

VB GRAPHICS & VIDEO

256PB2.ZIP - 256 colors in VB picture box controls.

3D4VB.ZIP - Create 3-d effects such as shadowed boxes & text etc.

ANIMAT.ZIP - Source code for creating smooth animation.

BITMAP.ZIP - Source to show how the use of the V.B. Picture Box functions.

BMPKIT.ZIP - Routines to scale, display & print .BMP's. Source incld.

BTDEMO.ZIP - Shows a easy way to create command buttons with pictures.

BUTTON.ZIP - Simulate command buttons with pictures on them. Source Incld.

GRAF20.ZIP - A control to display up to 24 bit color .BMP and .PCX pictures.

ICOBMP.ZIP - Converts .ICO icon files to .BMP format. Source Incld.

ICONDEMO.ZIP - Source to show how to draw graphics on a V.B. App's icon.

ICONDLL2.ZIP - Build a DLL from a collection of icon (.ICO) files.

ICONLOOK.ZIP - An .ICO viewer. Full Source Code is included in the Docs (.WRI).

ICONVIEW.ZIP - An icon viewing utility can save to clipboard. Source incld.

METALIB.ZIP - Routines to create, draw & save metafiles (vector graphics).

MULTIPIC.ZIP - How to apply pictures to buttons without loading from disk.

POLYGO.ZIP - Source for a graphics display. Shows use of iconized graphics.

SSAVER.ZIP - Allows you to create a screen saver (like After Dark) in VB.

VBFLIP.ZIP - Source shows how to store series of images in a single file.

VBMASK.ZIP - How to create a mask from a image & screen object using BitBlt.

VBMENU.ZIP - Shows how to add graphic bitmaps & check marks to a menu.

VBSCRL.ZIP - Demonstrates how to scroll/pan across a bitmap in a picture box.

WALLCH.ZIP - Automatically changes your Windows wallpaper. Source code Incld.

3DDEMO.ZIP - A demo of 3D4VB.ZIP in this file section.

WLPEEP.ZIP - Scroll through BMP, WMF, RLE & ICO files. VB 2.0 Source Included.

WMFBMP.ZIP - Converts WMF files to BMP format. VB 2.0 Source Included.

FADE.ZIP - Routine to make the background of your form fade from blue to back.

VB MISC. FILES

AREACODE.ZIP - Find the name for US & Canadian areacodes. Source Incld.

BASECVRT.ZIP - Converts numbers between bases. Source Code Included.

CM01.ZIP - A phone / address manager. Source available.

EZHELP.ZIP - An easy way to add help to your Apps. Inclds Source Code.

FXLAUNCH.ZIP - Mini launcher for Metz's programs. Source Incld.

LOSE1.ZIP - A program to help learn VB. Inclds Source code.

ORDER.ZIP - Order form for Shareware VB programs. Figures total & Tax etc.

QUITWIN.ZIP - Instant Windows exit with animation & sound. Inclds how.

VBLOTTO.ZIP - A lottery picker. Visual Basic source code included.

VINST4.ZIP - An updated install for VB Pro Toolkit.

WAVPLY.ZIP - A .WAV sound player includes Sourse Code.

WINDCH.ZIP - Windchill computations. Includeds VB Source code.

PSOUND.ZIP - Routine to place sound into VB programs. Source Incld. (Req. SoundBlaster).

LZSSLI.ZIP - Compression library for Windows.

VB PRINTER

HPENV.ZIP - Print addresses on envelopes with an HP laser. Source Code Incld.

HPESC.ZIP - Shows how to send escape sequences from VB to an HPIII printer.

NETPRN.ZIP - Network printer linker for Windows. Source code incld.

PRCLP2.ZIP - Print text in the clipboard by clicking on its icon. Source Incld.

PSETUP.ZIP - A DLL to invoke the standard Printer Setup Dialog. Source incld.

PSOUT.ZIP - Shows how to print bitmap files on HP & Postscript printers.

VBBOOK.ZIP - Source for an App to print text files to HPLJ in booklet form.

VBPSETUP.ZIP - A printer setup dialog box includes Source code.

VB PROGRAMMERS TOOLS

COLORS.ZIP - A tool for calculating Visual Basic color values.

IDVB.ZIP - A utility that finds the ID's of controls on VB forms. Source Incld.

KEYTEST.ZIP - VB App to get the hex key code for any key. Source Code Incld.

PROPVIEW.ZIP - Property viewer control displays/prints properties of current form.

VALET.ZIP - Get to your TXT & HLP files, also logs time spent on project.

TOOLBT.ARJ - Vb controlls tool bars.

VBBAR100.ZIP - Adds a toolbar to access commonly used features of VB.

VBCLN.ZIP - Automates the SAVE/LOAD text procedure to shrink your Apps .EXE size.

VBEHAN.ZIP - Additions to VB for printing selected text & save text as file.

VBTBPB.ZIP - Add on ToolBox that automates many VB tedious tasks. Great!

VBUTIL.ZIP - Two programs to copy or delete VB project files.

SAVEME.ZIP - Form with button to quickly save the current file or project.

CPVB22.ZIP - Pretty code printer utility for VB 2.0

VB2-TB.ZIP - ADD on ToolBox for Vb 2.0, adds many enhancments. Great!

VB REFERENCE / INFO

APIREF.ZIP - Reference to functions of Windows API.

KBWINTXT.ZIP - Text file of help and tips for VB programmers.

VB2NEW.ZIP - A text file describing the new features of VB 2.0.

VBTHLP.ZIP - A large collection of tips & tricks for Visual Basic.

MOREAPI.ZIP - Additional API functions. Sample Source Code Included.

VB SYSTEM & LANGUAGE

ABOUT.ZIP - A bouncing command button in an About box. Source incld.

APPSHELL.ZIP - Source code template for standard Windows file open, save, print etc.

ARRANGE.ZIP - Arrange icons. Source code example on how to use SendKeys.

CFIXVB.ZIP - A routine to round Currency variables at a given # of decimal places.

DOSBUT.ZIP - A button to shell to DOS. Source Code Included.

DSL100.ZIP - DOS shell launcher with Source code.

EDITDEMO.ZIP - Input routines for text controls.  Source Code Included.

FNDWND.ZIP - How to look for a window based on its ClassName or Caption.

FOPEN.ZIP - Source Code for an advanced file open routine.

GRDRTN.ZIP - Examples of grid manipulation. Source Code Included.

GRID.ZIP - Test properties of controls on a VB form. Source Incld.

GRID2.ZIP - A modified version of GRID.ZIP.

LABTAB.ZIP - How to use label controls to display tabular data. Source Incld.

LDEMO.ZIP - Example of linked list/Listbox & Speedfill. Source Code Incld.

LISTDR.ZIP - Routine to drag a text line from one location to another. Source Incld.

METER1.ZIP - Routine to implement scrolling gauges. Sourc Code Included.

MSGDEMO.ZIP - How to send messages to the user. Source Incld.

MULTIPIK.ZIP - Multiple selection list box for VB Apps. Source included.

PROFIL.ZIP - 2 routines to manipulate profil entries in WIN.INI.

RECYCLER.ZIP - A Trashcan for file deletions. Source Code Included.

SYSWITCH - Choose between different Windows .INI files. EXE & Source.

VBFLOAT.ZIP - VB source to show how to keep your apps window always on top.

VBMEM.ZIP - Source for a VB App that displays Windows system info.

WEDI.ZIP - A front end for your favorite text editor. Source Included.

WINDWIP.ZIP - A beginnings to an XTREE GOLD clone. Needs more coding.

VBA102.ZIP - Files to provide support in VB for Huge Arrarys.

INIFIL.ZIP - VB Module for simplifying .INI file operations.

INIEDT.ZIP - INI-EDIT for managing Windows .INI files. VB 2 Source Code Incld.

VB TIME & DATE

DATETIME.ZIP - Source code to display the date and time in a variety of formats.

SCARY.ZIP - A clock for Halloween. Source Included.

TINYCAL.ZIP - Source code for a very tiny calendar.

VBCLK.ZIP - A clock App that shows time, date & can change colors. Source Incld.

VBCLOCK.ZIP - Source for an App to display the date and time in a small window.

PRICE  $39.95 (Plus S/H)

ORDER FORM


SW Order Form
VB DISK LIBRARY ORDER FORM

NAME: _______________________________

COMPANY NAME: ____________________________________

ADDRESS: ____________________________________________

CITY: __________________________

STATE: _________________________

ZIP: ____________________________

COUNTRY: ______________________

PHONE (OPTIONAL): ________________

The library comes on 5-1/4 HD or 3-1/2 HD disks.

DISK PREFERENCE:    5-1/4 [     ]      3-1/2 [     ]

PRICE:    $39.95 PLUS $5.00 Shipping ($10.00 Shipping Foreign)

Arizona residents add 6.7 % sales tax.

Send check or money order drawn on a US Bank made payable to WELSH COMMUNICATIONS and send to the following address:

WELSH COMMUNICATIONS

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023


VB Shareware Library II
VISUAL BASIC SHAREWARE LIBRARY II

This library contains more Visual Basic Shareware, Freeware and Public Domain files. All of these files are specially picked with the Visual Basic programmer in mind. You get plenty of Custom Controls, DLL's, On-line Help files, Source Code and more. This library contains no filler (some VB file libraries come with regular Shareware programs that are of no real use by VB programmers or come with no availability of Source Code - NOT THIS LIBRARY!) NOTE: SHAREWARE PROGRAMS MAY REQUIRE SEPARATE PAYMENT MADE DIRECTLY TO THE AUTHOR FOR CONTINUED USE.

Files include:

23PICK.ZIP - Game against the computer in a match of wits. Includes VB Source code.

ADIALR.ZIP - Phone dialing program. Visual Basic Source code included.

AGPR10.ZIP - Agility/VB 1.1 Press Release.

AHELP.ZIP - Code to include a Help Menu in your VB programs.

BAR.ZIP - A gauge type control written in pure Visual Basic source code.

BITSDLL.ZIP - A DLL that supplies bit operations.

CALZIP.ZIP - A small Calendar program. Includes Visual Basic Source Code.

CARD10.ZIP - Card deck DLL for writers of VB card games. Need this for Crispy.ZIP.

CFGTEX.TXT - VB Routine to Configure a Text Box - max length, case conversion.

CLPDEM.ZIP - CLPDEM.ZIP example uses clipboard across forms.

CLPTL.ZIP - Allows you to display, print, save and load text and graphics fro

CLRGAME.ZIP - Children's colorful game. VB Source Code included.

CONTACT.ZIP - Q&E/VB Source links ACT! to Word via DDE.

CRC32.ZIP - A DLL to guarantee the completeness and authenticity of a file.

CRISPY.ZIP - Solitaire variation, with source code. Requires CARD10.ZIP.

CURLIBM.ZIP - Libraries of cursor animations. Include animated cursors in your VB Apps.

CURMAN.ZIP - Control your cursor in VB.

DBHDR.ZIP - How to read DBF file and field structure from the header. Req. QEVB.

DD1A.ZIP - How to implement file manager drag and drop in a VB program. Source Incld.

DEMOBM.ZIP - GUI Custom Control Toolkit demo.

DIALOGS.ZIP - Shows calling the Win 3.1 Common Dialogs of File Open, Save, Print etc.

ENDPRN.ZIP - Source code which makes Print manager the active application. Source Incld.

EXECSC.ZIP - Executive Decision Maker. Includes Visual Basic Source Code.

FAVORITE.ZIP - Program Launcher. Includes Visual Basic Source Code.

FILEBOX.ZIP - How to fake a Windows style file-open box from within VB.  Source Code Incld.

FONTS.ZIP - Lists and displays available fonts. Includes Visual Basic Source Code.

FREE2V.ZIP - Custom Controls for an event string sequencer & interactive text display.

GETFKEY.ZIP   Gets an F key selection. VB Source Included.

GETREG.ZIP - Takes orders for your shareware products and prints them. Source Code Incld.

GETVER.ZIP - GetVer example to call functions in VER.DLL.

HPJ.ZIP - Help Compiler Shell.

HYPER.ZIP - A simple way to add hypertext to your VB programs. Source code Incld.

ICONVI.ZIP - Simple icon viewer. Includes Visual Basic Source Code.

ICONX113.ZIP - Extracts icons from Windows EXE programs, and saves as .ICO file.

ILIST.ZIP - An enhanced listbox custom control features: multi-select and more.

INIMOD.ZIP - A VB module to create, read and update private ini files. Source Incld.

JEOPKE.ZIP - A game for VB. Includes Source Code.

LBSRCH.ZIP - Source code shows how to search a list box for closest match.

LB_FUN.ZIP - Source code shows some SendMessage API commands.

MINCLOCK.ZIP - Mini desktop clock written in Visual Basic. Source Code Included.

NCALC.ZIP - Shows Keyboard and Control handling with a calculator. Source Included.

NOCRUN.ZIP - Number Crunch v. 2.0 - A Number Game. Includes VB Source Code.

PLAYWA.ZIP - Shows how to play, replay, and stop the replay of WAV files in V.B.

PRCL11.ZIP - Click on a icon to print text in the clipboard. Source code included.

PRETTY.ZIP - A source code (txt) printing program for Visual Basic.

PROADD.ZIP - A quick way to add Microsoft Professional Toolkit custom controls to VB.

PROJPR.ZIP - Gives a formatted listing of your V. B. program in Word for Windows.

QDHELP.ZIP - Write help text, to be compiled with the Help Compiler (not included).

QPSUM.ZIP -  Program containing summary of features in QuickPak Professional.

REFRES.ZIP - Shows effect of using Refresh on a dynamically changing control. Source Incld.

RUNFIX.ZIP - Set "Minimize on Use" for each app in the Program Manager. Source Incld.

SHUFL1.ZIP - Designate multiple sound files for each system event. Source Incld.

SOUNDL.ZIP - A sound DLL for use with Visual BASIC. Includes sample app and source code.

SPIN.ZIP - A spin button for Visual Basic. Source Code Included.

STORC1.ZIP - Convert Visual Basic forms into standard Windows 3 resources.

STSBAR2.ZIP   A status bar .dll that can incorporate Status bars in your VB App.

SWITCH20.ZIP - Switch v. 2.0 - A Puzzle Game. Visual Basic Source Code included.

SYSSND.ZIP - Demo of how to access the Windows system sounds.

TAGENV.ZIP - Routines to provide support for tagged string fields in a VB Form.

TIMEFR.ZIP - Display Time in Caption of active Window. VB Source included.

VB2E.ZIP - How to recycle Declare statements for external Subs and Functions.

VBDOCERR.ZIP - List of documentation errors in the first printing of the VB manuals.

VBFAST.ZIP - Speeds up the loading of VB apps by pre-loading vbrun100.dll. Source Incld.

VBFONT30.ZIP - Displays available fonts and prints a list. Visual Basic Source Included.

VBMAC.ZIP - Macros for the Windows Recorder. To shortcut your typing when coding in VB.

VBME31.ZIP - Utility that displays Windows operating mode, and other system details.

VBPATH.ZIP - Gives you the path specs that are stored in the VB make files.

VBPT200S.ZIP - Manages Visual Basic 2.0 projects. SEE AD IN PRODUCT SHOWCASE SECTION!

VBSHEL.ZIP - VBShell can be loaded as the Windows shell. It then loads your VB application.

WHATSM.ZIP - Guess a random number set by the computer. Source code included.

WLZHCXP2.ZIP - A DLL for compression and decompression, copying, appending files.

WQH111.ZIP - Viewer for Windows Help files. Allows printing topics from help files.

XANTIPPE.ZIP - Hypertext authoring. Automates making of Windows help files.

PRICE  $39.95 (Plus S/H)

ORDER FORM


SW Order Form
VB DISK LIBRARY II ORDER FORM

NAME: _______________________________

COMPANY NAME: ____________________________________

ADDRESS: ____________________________________________

CITY: __________________________

STATE: _________________________

ZIP: ____________________________

COUNTRY: ______________________

PHONE (OPTIONAL): ____________________

The library comes on 5-1/4 HD or 3-1/2 HD disks.

DISK PREFERENCE:    5-1/4 [     ]      3-1/2 [     ]

PRICE:    $39.95 PLUS $5.00 Shipping ($10.00 Shipping Foreign)

Arizona residents add 6.7 % sales tax.

Send check or money order drawn on a US Bank made payable to WELSH COMMUNICATIONS and send to the following address:

WELSH COMMUNICATIONS

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023


VB Shareware Library 3
VISUAL BASIC SHAREWARE LIBRARY 3

This library contains more Visual Basic Shareware, Freeware and Public Domain files. All of these files are specially picked with the Visual Basic programmer in mind. You get plenty of Custom Controls, DLL's, On-line Help files, Source Code and more. This library contains no filler (some VB file libraries come with regular Shareware programs that are of no real use by VB programmers or come with no availability of Source Code - NOT THIS LIBRARY!) NOTE: SHAREWARE PROGRAMS MAY REQUIRE SEPARATE PAYMENT MADE DIRECTLY TO THE AUTHOR FOR CONTINUED USE.

Files include:

AGIGO2.ZIP   An Agility/VB record search utility.

AGINAT.ZIP   Text Help file explaining Agility/VB native files.

APIX.ZIP     Utility gives instant access to the API Declares/Constants/Types. Inclds 	 	 Source.

AVI-WI.ZIP   This is a program to show how to play an .AVI file. VB Source Included.

AVIDEM.ZIP   Plays .AVI files, Also plays .wav/.mid/.mmm files, and records .wav files. VB 	 Source Incld.

BSCBAR.ZIP   Allows large numbers in scroll bars. Includes VB Source Code.

BUSTE2.ZIP   Automates the vb environment. Saves Code. Send Declares, constants into your 	 project.

BUTNUP.ZIP   Here's 100 buttons for ToolButton 2.0. (TOOL20.ZIP)

CH201.ZIP    CreateHelp! v2. Help file authoring tool used with WinWord.

CLPSIB.ZIP   Set WS_CLIPSIBLINGS style bit for all a Form's windows. Includes VB Source 	 	 Code.

CMDLG2.ZIP   Using common dialogs from Visual Basic. Includes VB Source Code.

COLORS.ZIP   A Visual Basic Color Editor Demo. Includes VB Source Code.

D2HNEW.ZIP   Information on DOC-TO-HELP. Commercial add-on to MS WINWORD to write Help 	 files.

DDESHR.ZIP   VB Source showing how to use DDE. Includes VB Source Code.

DDEUTI.ZIP   VB Tool for Testing DDE Code. Includes VB Source Code.

DSKINF.ZIP   DLL to get disk info from VISUAL BASIC.

DSKSPC.ZIP   DLL with functions to determine total disk space & total free space on a 	 drive. Inclds Source.

DTBL11.ZIP   DataTable Custom Control. Gives multi-user, network compatible databases.

DXFDLL.ZIP   DLL allows you to create standard DXF graphic files. Includes VB Source Code.

ENTASK.ZIP   A DLL callable from VB to end a task.

GETHEP.ZIP   GetHelp v1.2 allows access to Windows Application's Help files by Key Word. 	 Inclds VB 2 Source.

GRIDEG.ZIP   Example of a self expanding grid. Includes Source Code.

HUGE2.ZIP    Enhanced huge array for VB updated with additional features.

INPV10.ZIP   Notepad with a few additions over the standard Windows Notepad. Inclds. VB 	 Source.

JUNQUE.ZIP   A method of displaying open-ended (unknown completion time) activity in VB. 	 Includes Source.

LENINP.ZIP   A VB source file for keystroke detection.

MANAGE.ZIP   Ruler and IndexTab Custom controls DEMO from Videosoft.

MANYTH.ZIP   A Windows 3.1 screen saver written entirely in VB that includes VB 2 Source 	 Code.

MF101A.ZIP   Database for Windows.  DLL with VB example provided. Docs included.  Royalty 	 free.

MHCTL.ZIP    Get a menu's control handle in a custom control.

MWATCH.ZIP   DLL to monitor the position of the mouse and provide dynamic feedback to the 	 VB programmer.

NEWSET.ZIP   An updated version of the file SETUP.EXE that comes with the Pro version of 	 VB.

OPENDL.ZIP   VB custom control to use some of the common dialogs.

PBCWIN.zip   General Purpose DLL for VB (over 70 different routines).

PERCNT.ZIP   PerCnt displays a percentage (status) bar.  Can control the font, color, 	 border, and size.

PICBTN.ZIP   100 toolbar-type buttons with graphics in color for use with Microsoft's 	 PicClip VBX control.

PHON_D.ZIP   Phone Book and dialer that includes Visual Basic Source Code.

PMS3.ZIP     PM Switch: turns Print Manager on/off and includes Visual Basic source code.

PPFONT.ZIP   Dll - Get font family and font list and characteristics.

PPRTR2.ZIP   DLL providing higher-level language via functions to get and change all 	 printer attributes

QCARD.ZIP    A full featured FREEWARE DLL for creating your own card games in Visual 	 Basic.

ROTEXT.ZIP   Rotatable Label Custom Control. Fully functional & free.

SBAR2.ZIP    Satus Bar Control version 1.1.

SBUTTO.ZIP   A Custom Control for Super Buttons.

SECLAU.ZIP   Security program to stop most people from running selected programs. Inclds. 	 VB Source.

SFAXV1.ZIp   Example VB2 program allows you to send short fax messages via Delrina's 	 WinFax 3.0.

SRCDES.ZIP   DDE example: VB to VB application link (v. 2.0). Includes VB Source Code.

TEXTED.ZIP   Another NotePad . Includes VB Source Code.

TLGPRT.ZIP   Utility to toggle between two printers. Inclds. VB Source Code.

TOOL20.ZIP   ToolButton custom controls to put standard toolbar buttons in your Visual 	 Basic application

VBTIPS.ZIP   VB tips, tricks and workarounds.

VB2-TB.ZIP   VBToolbox PRO (2) adds many new features that enhance and automate                            	 programming tasks in VB.

VBKNOW.ZIP   Visual Basic Online Knowledge Base.

VBLAUN.ZIP   Quickly launch VB Projects from a stored list of MAKs. Visual Basic Source 	 Included.

VBMSG.ZIP    VB Messenger Generic Subclass Custom Control v1.

VINST6.ZIP   Modified & Improved setup for Visual Basic 2 Professional version.

VISHLP.ZIP   Visual Help is a stand alone authoring tool for Microsoft Windows Help Files.

PRICE  $39.95 (Plus S/H)

ORDER FORM


SW Order Form
VB DISK LIBRARY 3 ORDER FORM

NAME: _______________________________

COMPANY NAME: ____________________________________

ADDRESS: ____________________________________________

CITY: __________________________

STATE: _________________________

ZIP: ____________________________

COUNTRY: ______________________

PHONE (OPTIONAL): ____________________

The library comes on 5-1/4 HD or 3-1/2 HD disks.

DISK PREFERENCE:    5-1/4 [     ]      3-1/2 [     ]

PRICE:    $39.95 PLUS $5.00 Shipping ($10.00 Shipping Foreign)

Arizona residents add 6.7 % sales tax.

Send check or money order drawn on a US Bank made payable to WELSH COMMUNICATIONS and send to the following address:

WELSH COMMUNICATIONS

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023


VBMAN

An easy to use file manager for VB Programmers!

REGULAR PRICE  $29.95 (Plus S/H)

ON SALE NOW FOR ONLY $19.95 (Plus S/H)

EXPIRES 04/01/94

ORDER FORM


VBMAN ORDER FORM

NAME: _______________________________

COMPANY NAME: ____________________________________

ADDRESS: ____________________________________________

CITY: __________________________

STATE: _________________________

ZIP: ____________________________

COUNTRY: ______________________

PHONE (OPTIONAL): _____________________

Any suggestions or improvements for the next version of VBMan? _______________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

VBMan v1.01 comes on 5-1/4 HD or 3-1/2 HD disk.

DISK PREFERENCE:    5-1/4 [     ]      3-1/2 [     ]

PRICE:    $19.95 PLUS $3.50 Shipping ($8.50 Shipping Foreign)

Arizona residents add 6.7 % sales tax.

Send check or money order drawn on a US Bank made payable to WELSH COMMUNICATIONS and send to the following address:

WELSH COMMUNICATIONS

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023


ICON LIBRARY

Looking for a certain icon. Currently 50 groups and approx. 1800 icons. Icons have been grouped into logical catagories so that a particular type of icon is much easier to find.

ANIMALS.EXE ....... Animals, Fish, Animal Cartoon Characters

ARROWS.EXE ........ Various styles of arrows

BOOKS.EXE ......... Books, Notepads, Bundles of Paper

BUTTONS.EXE ....... Icons on "gray" buttons

CARDFILE.EXE ...... Card index files and cards

CARDS.EXE ......... Playing cards(not complete) and suit symbols

CLOCKCAL.EXE ...... Calendars, Clocks, and Watches

COMMS.EXE ......... Communications, Modems, Port Connectors

CURSICON.EXE ...... Simple icons that can be used as cursors

DICE.EXE .......... Assorted dice and a set of six dice faces

DISKS1.EXE ........ Floppy disks

DISKS2.EXE ........ Hard disks, & virus tool icons

DOS.EXE ........... C: prompts, and "DOS" icons

EYES.EXE .......... Assorted "eye" icons

FILES.EXE ......... Filing Cabinets, Drawers, & Folders

FLAGS.EXE ......... Collection of national flags

GAMES.EXE ......... Icons for various Windows games

GRAPHS.EXE ........ Graphs and Charts

HANDS.EXE ......... Human hands pointing & holding

HOURGLAS.EXE ...... Sequence of hourglasses from full to empty

ICON10.EXE ........ Blank icon file with 10 slots (create your own)

ICON20.EXE ........ Blank icon file with 20 slots

ICON50.EXE ........ Blank icon file with 50 slots

KEYBOARD.EXE ...... Computer keyboards and keys

LOCKS.EXE ......... Padlocks and keys

MAIL.EXE .......... Mailboxes, Letters, Envelopes

MISC.EXE .......... I could not think of where else to put these

MOUSE.EXE ......... Computer Mice, Scanners, Joysticks

OBJECTS1.EXE ...... Everyday objects #1

OBJECTS2.EXE ...... Everyday objects #2

OFFICE.EXE ........ Office related (FILES, PHONES, BOOKS, etc.)

PEOPLE.EXE ........ Humans and Human Cartoon Characters

PHONES.EXE ........ Telephones and Telephone Poles

PLANES.EXE ........ Airplanes, Balloons, Helicopters, & Rockets

PLANTS.EXE ........ Flowers and Trees

PRINTING.EXE ...... Printers, Paper, Labels, Fonts

PRODUCT1.EXE ...... Commercial Icons #1

PRODUCT2.EXE ...... Commercial Icons #2

PRODUCT3.EXE ...... Commercial Icons #3

PRODUCT4.EXE ...... Commercial Icons #4

SCREENS1.EXE ...... Pictures of computer screens

SCREENS2.EXE ...... Stylized computer screens

SOFTWARE.EXE ...... Generic software icons

SOUNDS.EXE ........ Ears, Music, Instruments, & Loudspeakers

STARS.EXE ......... Astronomy, Binocular, Telescope

SYMBOLS1.EXE ...... Signs and Symbols #1

SYSMOLS2.EXE ...... Signs and Symbols #2

TRAFFIC.EXE ....... Traffic Signs, Traffic Lights

WORLD.EXE ......... Rotating globe sequence, and globes

WRITING.EXE ....... Pens, Pencils, and related materials

Also included are a couple of good Shareware utilities for working with Icons.

VB ICON BROWSER & EXTRACTOR

Use VB Icon Browser 2.00 to view, maintain, and print your collection of Windows icons. Copy, rename and delete icons. Print one to thousands of icons per page. VB Icon Extractor 1.11 extracts icons that are imbedded in Windows .EXE and .DLL files.

ICONMASTER 1.2C

An Icon editor and management program. Full edit with transparency. Multiple window display with drag and drop, screen capture, automatic installation of icons into Program Manager, handles all the popular icon formats.

Below are just a few of the approx. 1,800 categorized icons.

REGULAR PRICE  $29.95 (Plus S/H)

ON SALE NOW FOR ONLY $19.95 (Plus S/H)

EXPIRES 04/01/94

ORDER FORM


ICON Order Form
ICON LIBRARY ORDER FORM

NAME: _______________________________

COMPANY NAME: ____________________________________

ADDRESS: ____________________________________________

CITY: __________________________

STATE: _________________________

ZIP: ____________________________

COUNTRY: ______________________

PHONE (OPTIONAL): ____________________

The library comes on 5-1/4 HD or 3-1/2 HD disks.

DISK PREFERENCE:    5-1/4 [     ]      3-1/2 [     ]

PRICE:    $19.95 PLUS $3.50 Shipping ($8.50 Shipping Foreign)

Arizona residents add 6.7 % sales tax.

Send check or money order drawn on a US Bank made payable to WELSH COMMUNICATIONS and send to the following address:

WELSH COMMUNICATIONS

16845 N. 29TH AVE. STE. 1-604

PHOENIX, AZ  85023